home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / unixlib.lha / unix / src / rename.c < prev    next >
C/C++ Source or Header  |  1996-01-04  |  464b  |  25 lines

  1. #include "amiga.h"
  2.  
  3. int rename(const char *from, const char *to)
  4. {
  5.     long err;
  6.  
  7.     __chkabort();
  8.     if (Rename(from, to))
  9.     return 0;
  10.     err = IoErr();
  11.     if (err == ERROR_OBJECT_EXISTS) {
  12.     if (DeleteFile(to) && Rename(from, to))
  13.         return 0;
  14.     err = IoErr();
  15.  
  16.     if (err == ERROR_DELETE_PROTECTED) {
  17.         if (SetProtection(to, 0) && DeleteFile(to) && Rename(from, to))
  18.         return 0;
  19.         err = IoErr();
  20.     }
  21.     }
  22.     errno = convert_oserr(err);
  23.     return -1;
  24. }
  25.